#ifndef __DEBUG_H__
#define __DEBUG_H__


#if 1
#if 1
#define DBG_INFO(x,y...) DBG_Printf("%s %d:"x"\r\n", __FUNCTION__,__LINE__,##y)
#define DBG_ERR(x,y...) DBG_Printf("%s %d:"x"\r\n", __FUNCTION__,__LINE__,##y)
#define DBG(x,y...)		DBG_Printf(x"\r\n", ##y)
#define DBGF	DBG_ERR("!")
#else
#define DBG_INFO(x,y...) DBG_Print("%s %d:"x"\r\n", __FUNCTION__,__LINE__,##y)
#define DBG_ERR(x,y...) DBG_Print("%s %d:"x"\r\n", __FUNCTION__,__LINE__,##y)
#define DBG(x,y...)		DBG_Print(x"\r\n", ##y)
#define DBGF	DBG_ERR("!")
#endif
#else
#define DBG_FUNC(x,y...)
#define DBG_INFO(x,y...)
#define DBG_ERR(x,y...)
#define DBG
#endif

void DBG_CB(PV_Union pData);
void DBG_Init(void);
void DBG_HexPrintf(void *Data, unsigned int len);
void DBG_Printf(const char* format, ...);
void DBG_Print(const char* format, ...);
int32_t DBG_Send(void);
void DBG_UsartReceive(uint8_t data);
int DBG_ReturnBufLen(void);
#endif
